home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Commodore Free 21
/
Commodore_Free_Issue_21_2008_Commodore_Computer_Club.d64
/
t.iv antonio
< prev
next >
Wrap
Text File
|
2023-02-26
|
8KB
|
285 lines
u
Interview with Commodore programmer
Antonino Porcino, author of Gomoku
http://xoomer.alice.it/aporcino/Vic20/
Commodore Free:
Please introduce yourself to our reader
Antonino Porcino
Hello, I'm Antonino Porcino, the
author of Gomoku and some other VIC-20
games. I'm 36 and live in Italy,
working as a computer programmer.
CF: When did you first come into
contact with Commodore machines
AP: It was back in 1984 after I
managed to persuade my parents to buy
me a VIC-20. I really didn't know what
could be done with a computer, I
figured out that it was possible to
play some form of games as in video
game consoles, and that was enough for
me to start craving for a VIC. I was
twelve.
CF: Was the Vic your first machine and
do you own other Commodore machines
AP: It was my first computer and I
simply loved it, spending most of my
free time experimenting with it. I
later owned a Plus4, a C=64, and of
course an Amiga. But I lost my
machines along the years so I had to
buy back the VIC on ebay. And a friend
gave me his C=64.
CF: Do you think there is still life
in the Vic 20
AP: Yes, there is a small but very
active community that rotates around
the "Denial" website run by Jeff
Daniels. In mid of 2008 we already
have 7 titles released for the VIC.
The community provides an ideal
environment where you can discuss
technical subjects and share your
experiences. It also help to keep the
interest alive.
CF: Do you think there are features of
the machine still untapped by
programmers
AP: Not really, the VIC-20 is a
relatively simple machine, and that's
why I love it, in the sense that you
can expect to "master it" if you put
in enough effort.The same thing for
example can't be said for a PC where
everything is so unnecessary complex
and certain parts of its architecture
are secreted.
CF: Can you tell our readers about
Go-Moku what it is and briefly how to
play
AP: Gomoku is the classical 'X' and
'O' game where you have to connect
five Dots before your opponent does
the same. Can be played also with "pen
and paper" and for this reason is
widespread known around the world
(usually under different names). It
has simple rules but a very complex
playing strategy. Mathematicians say
that Gomoku is a "closed game" in the
sense that who moves first can always
close the match with a win (like in
tic-tac-toe), but this is true only in
theory because of the exponentially
high number of possible moves. So
there isn't a "perfect" play, and
computer players have to use some kind
of strategy. The one adopted in my
program is basically to look for some
particular board configurations and
play accordingly.
CF: You ported the game to the c64 and
plus4/16 machines where there any
problems with the conversion.
AP: I wrote the program with the idea
of portability from the start, so I
didn't use any specialmachine-
dependant effect. I limited myself to
definable character graphics and to
standard calls to the ROM kernal.
After the VIC-20 version was ready, I
converted the it for the C=64 because
of the similarity with the VIC (most
ROM and zero page is the same).
The only work was to adapt it to 40
columns, and indeed I faced the
problem that my routines in the 64
version exceded the 256 bytes indexing
Capabilities of the 6502.
So I downgraded them to a slower
version that worked for both machines.
The C16/Plus4 version came later, and
was relatively easy to do because all
the 40 columns work was already done
for the C64. I had only a trouble from
of a bug that didn't show on the VICE
emulator but that appeared on the real
machine.
CF: How much memory does the game use,
did you think it may not fit into an
unexpanded machine
AP: Working with the VIC20 taught me
how to save bytes. For example my
Go-Moku program does its calculations
directly in the screen memory,
re-using the "free cells" of the board
instead of having a separate memory
area dedicated for calculations. In
the download page of the game I show a
POKE command that makes visible the
calculations that are being done in
the free cells. It's nice to see.
CF: other games on your website are
Tetris / Pong and Return To Fort Knox
can you tell our readers a little
about these games
AP: "Tetris" was the program that
made me acquaint again with the VIC-20
and 8 bit programming after twenty
years. There was no such game for the
VIC so I decided to write an
implementation.
"Pong" is a joined effort together
with another VIC-20 enthusiast and
countryman "Nbla000", aimed at
reproducing the exact Pong hardware
game.
"Return to Fort Knox" is a total
different story. One day I started to
disassemble the Commodore cartridge
"Raid On Fort Knox", doing an
intensive reverse-enginering work
lasted one entire weekend. At the end
I came up with the complete game
source code, so it was natural for me
to extend it, adding new levels and a
small different game play--but still
maintaining the original look and
feel. I like to think that this sequel
is a tribute to the original game,
being it the first I ever played on my
VIC.
CF: Do you intend porting these games
to the c64 plus4/16 machines
AP: Well, maybe "Return to fort
knox", but not Tetris or Pong as there
are already good implementations of
these games. I prefer to dedicate my
time to something that hasn't been
ported yet.
CF: Are the any projects you are
working on at the moment
AP: Nothing at the moment, I'm looking
for inspiration.
CF: Is there anything our readers can
do to help with the games
AP: Not at the moment
CF: How do you programme do you use
cross platform tools or purely on the
VIC
AP: I cross develop on the PC, test
on the emulator and then on the real
hardware when finished. I program in
machine language, but in a different
way than the traditional one. I use a
macro language of my invention that
allows me to write an highly
structured assembler code. For
example I can put a FOR-NEXT or nested
IF-THEN-ELSE in the code and have
these statements properly translated
into machine language. This frees me
completely from labels and from the
"branch-here" "branch-there" style of
programming. The resulted code is very
compact, looking like a middle-way
between visual-basic and machine
language.
CF: Why use cross platform tools is it
purely speed of development
AP: Not only. With the macro language
tool that I've created I can work at
big projects, while I can write only
small useless routines on the real
machine without cross compilers.
CF: Have you considered programming
purely on the VIC with no other tools
other than software available on the
machine
AP: No, I don't consider it as an
option, especially as it regards BASIC
programming. It's no longer attractive
to me, although in the days I was a
very active BASIC programmer.
CF: 3k of memory was an incredibly
small amount of of memory do you think
this limited the machine
AP: Yes of course, but that was
balanced by programmers who became
more creative!
CF: If you could change 3 things on the
VIC20 what would you change and why
AP: Oh well, this is something I
daydream a lot about. If I was Jack
Tramiel at the time, I would have
increased the screen size because it's
too limiting to have a 22x23 screen,
expecially when editing BASIC
programs. I would have also included
some 16 bit operation (like INC or
ADD) in the CPU, perhaps dropping the
totally useless BCD mode. And, what
about having a better ROM kernal with
more built-in commonly used routines.
For example joystick reading, or some
form of graphic sprites. I believe
awell written ROM kernal could have
balanced the small memory issue of
the VIC-20.
CF: What motivated you to write
software for 8bit Commodore machines
AP: Having explored the world of
computer programming in almost every
aspect I felt the need to return back
to my roots to the point where this
long journey started. It's like a
circle that closes itself.
CF: Do you have any further comments
you would like to add ?
AP: Thank you for the interview and I
hope I have raised the interest of
your readers. Good BYTE!